import { fileURLToPath, URL } from 'node:url'
import UnoCSS from 'unocss/vite'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import vueDevTools from 'vite-plugin-vue-devtools'
import compression from 'vite-plugin-compression'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { nodePolyfills } from 'vite-plugin-node-polyfills'
// https://vite.dev/config/
export default defineConfig({
  base: '/testtt/',
  define: {
    // __VUE_I18N_FULL_INSTALL__: true,
    // __VUE_I18N_LEGACY_API__: false,
    // __INTLIFY_PROD_DEVTOOLS__: false
  },
  json: {
    stringify: true,
  },
  plugins: [
    vue(),
    nodePolyfills({
      // 是否添加所有的polyfills
      include: ['global'],
      // 也可以使用以下配置添加所有polyfills
      // globals: {
      //   global: true,
      //   process: true,
      //   Buffer: true
      // }
    }),
    UnoCSS(),
    vueJsx(),
    vueDevTools(),
    compression({
      verbose: true, // 打印压缩信息
      disable: false, // 是否禁用
      threshold: 10240, // 只处理大于 10kb 的文件
      algorithm: 'brotliCompress', // 使用 Brotli 压缩
      ext: '.br', // Brotli 压缩后文件的扩展名
    }),
    AutoImport({
      imports: ['vue', '@vueuse/core'],
      dts: 'src/auto-imports.d.ts',
      dirs: ['src/composables', 'src/stores', 'src/utils'],
      vueTemplate: true,
    }),
    Components({
      // 指定组件位置，默认是 src/components
      dirs: ['src/components'],
      // 组件的有效文件扩展名
      extensions: ['vue'],
      // 配置文件生成位置
      dts: 'src/components.d.ts',
      // 搜索子目录
      deep: true,
      // 允许子目录作为组件的命名空间前缀
      directoryAsNamespace: true,
      // 自定义组件的解析器
      resolvers: [],
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      '/avatar-sdk': fileURLToPath(new URL('./public/avatar-sdk-web_3.1.1.1011', import.meta.url)),
    },
  },
  server: {
    host: '0.0.0.0',
    port: 80,
    open: true,
    hmr: true,
    proxy: {
      '/mfmp-shop-manage': {
        target: 'https://kunlunshan.bibi-tech.com',
        changeOrigin: true,
        secure: true,
        // rewrite: (path) => path.replace(/^\/mfmp-shop-manage/, ''),
      },
    },
    cors: true,
  },
  // 线上预览
  preview: {
    port: 3002,
    host: true,
    strictPort: true, // 如果端口已被占用，则直接退出
  },
})
